package com.jsb.laundry.model.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.util.Date;
import java.util.List;

@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@ApiModel(value = "订单信息", description = "用户订单信息列表")
//@JsonInclude(JsonInclude.Include.NON_NULL)
public class OrderInfoVo {

    @ApiModelProperty("支付ID")
    private String payId;

    @ApiModelProperty("骑手id")
    private String riderId;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty("预约上门时间")
    private Date appointmentTime;

    @ApiModelProperty("订单派发类型(0:骑手，1:顺丰)")
    private String sendType;

    @ApiModelProperty("订单详情数据")
    private List<OrderInfo> orderInfoList;

    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    @Accessors(chain = true)
    @ApiModel(value = "订单详情")
    public static class OrderInfo {
        /**
         *
         */
        @ApiModelProperty("订单ID")
        private String orderId;
        /**
         *
         */
        @ApiModelProperty("商品ID")
        private String goodsId;
        /**
         * 衣物
         */
        @ApiModelProperty("商品名称")
        private String goodsName;
        /**
         * 衣物图片
         *
         */
        @ApiModelProperty("商品图片")
        private String goodsImg;

        /**
         * 服务ID
         */
        @ApiModelProperty("服务价格ID")
        private String serveId;
        /**
         * 服务类别描述
         */
        @ApiModelProperty("服务类别描述")
        private String serveMsg;
        /**
         * 购买量
         */
        @ApiModelProperty("购买数量")
        private int buyNum;
        /**
         * 实付金额
         */
        @ApiModelProperty("实付金额")
        private String total;
        /**
         * 订单状态
         * 0.用户未支付
         * 1.用户已支付 （骑手待接单）,
         * 2.待上门取衣服 （骑手已接单，正在赶往路上），
         * 3.已收货 （骑手到达目的地，拍照上传衣物），
         * 4.处理中或订单已完成 （骑手已到达站点）
         *
         */
        @ApiModelProperty("订单状态")
        private String orderStatus;
        /**
         * 用户订单方向(0:出，1：回)
         *      和order_status配合确定订单状态
         */
        @ApiModelProperty("订单方向")
        private String orderDirection;
    }
}
